#----------------------------------------
# simple function definition
#----------------------------------------
function Get-Tables
{
   Import-Module SQLPS -DisableNameChecking

   $servername = "ROGUE"
   $databasename = "AdventureWorks2014"

   $server = New-Object "Microsoft.SqlServer.Management.Smo.Server" $servername


   $server.Databases[$databasename].Tables 
}



#-----------------------------------------------------
# Advanced function definition
#-----------------------------------------------------
function Get-Tables
{
<#
.SYNOPSIS
   Function that retrieves tables from a database
.DESCRIPTION
   Function that retrieves tables from a database
.PARAMETER servername

.PARAMETER databasename
.EXAMPLE
   Get-Tables -servername "Rogue" -databasename "Registration"
.EXAMPLE
   Get-Tables "Rogue" "Registration"
.EXAMPLE
   "Rogue", "Registration" | Get-Tables 
.INPUTS
   System.String,System.String
.OUTPUTS
.NOTES
.LINK
#>
   [CmdletBinding()]
   param
   (
     #parameter 1
     [parameter(
        Mandatory=$true,
        ValueFromPipeline=$true,
        ValueFromPipelineByPropertyName=$true,
        HelpMessage='Which server are you using?')]
        [Alias('host')]
        [string]$servername,

     #parameter 2
     [parameter(
        Mandatory=$true,
        ValueFromPipeline=$true,
        ValueFromPipelineByPropertyName=$true,
        HelpMessage='Which database are you using?')]
        [Alias('database')]
        [string]$databasename

   )

   begin
   {
      Import-Module SQLPS -DisableNameChecking
      $server = New-Object "Microsoft.SqlServer.Management.Smo.Server" $servername
   }

   process
   {
      try
      {
         $server.Databases[$databasename].Tables 
      }
      catch
      {
         Write-Warning $error
      }
      finally
      {
      }
   }

   end
   {
   }
}

